<?php
include_once("dbconnect/db.php");
include_once("class/Common.php");
include_once("batch/videoTool.php");
Class Format_start
{
	var $errorMessage;
	
	var $videoId;
		
	var $imgSrc = "";
	
	var $videoName = "";
	
	var $memberId = "";
	
	// 変換種類
	var $type;
	
	// 変換回数
	var $ex_cnt = 0;
	// 変換情報html
	var $cnt_html = "";
	
	// 確認html
	var $confirm_html = "";
	
	// 変換総回数
	var $ex_total_cnt = 0;
	
	var $carrierId = "";
	
	var $uId = "";
	
	var $date;
	
	// ユーザータイプ( 0:一般,1:DL10コース,2:DL30コース,3:DL50コース)
	var $user_type;
	
	function mytask()
	{
		// 日期の初期化
		$this->date = date("Y/m/d");
		
		// 初期化の場合
		if($_GET["confirm"] == 0)
		{
			$common = new Common;
			$common->initCarrierInfo();	
			$this->carrierId = $common->carrierId;
			$this->uId = $common->uId;
			$this->videoId = $_GET["videoId"];
			$this->type = $_GET["type"];
			$this->getVideoImage();
			$this->getConfirmHtml();

			
			$this->hasThisMember();

			if($this->memberId == "" || $this->memberId == null)
			{
				$this->createNewMember();	
				$this->insertEx_cnt();
			}	
			
			// 変換回数を取得する
			$this->getEx_cnt();
			
			$this->getCntHtml();
			
			// 変換上限チェック
			if($this->ex_cnt >= $this->ex_total_cnt)
			{
				// 上限画面へ遷移する
				header("Location:request_over.php");
			}
			else
			{
				// video view_countを更新する
				$this->updateViewCount();
				
				// バッチ処理開始
				// 変換種類を判断する
				// 動画を再生/保存する場合
				if($this->type == 1)
				{
					// 隹・pbatch
					$result=shell_exec("/usr/bin/php /var/www/vhdocs/mobile/batch/convertVideo.php $this->videoId $this->carrierId >/dev/null &");
				}
				// ｻﾑﾈｲﾙ画像を作る
				else if ($this->type == 2)
				{
					$result=shell_exec("/usr/bin/php /var/www/vhdocs/mobile/batch/convertVideo.php $this->videoId $this->carrierId >/dev/null &");
				}
				// 待ち受け画像を作る
				else if($this->type ==3)
				{
					$result=shell_exec("/usr/bin/php /var/www/vhdocs/mobile/batch/convertVideo.php $this->videoId $this->carrierId >/dev/null &");
				}
				// ﾃﾞｺﾒ素材を作る
				else if($this->type ==4)
				{
					$result=shell_exec("/usr/bin/php /var/www/vhdocs/mobile/batch/convertVideo.php $this->videoId $this->carrierId >/dev/null &");
				}
			}
							
		}
		// 再確認の場合
		else if($_GET["confirm"] == 1)
		{
			$common = new Common;
			$common->initCarrierInfo();	
			$this->carrierId = $common->carrierId;
			$this->uId = $common->uId;		
			$this->videoId = $_GET["videoId"];
			$this->type = $_GET["type"];			
			$this->getVideoImage();
			$this->getConfirmHtml();
			$this->hasThisMember();
			// 変換回数を取得する
			$this->getEx_cnt();			
			$this->getCntHtml();

			// データベースの状態を判断する
			$status = getStatusByVideoId($this->videoId,$this->carrierId);
			// 変換完了した
			if($status == 2)
			{
				$this->type = $_GET["type"];
				$this->videoId = $_GET["videoId"];
				// ユーザー今日の変換数を更新する
				$this->updateEx_cnt();

				header("Location:format_end.php?UID=NULLGWDOCOMO&type=".$this->type."&videoId=".$this->videoId."&doseMakeObject=0");
			}
			// 変換エラー発生
			else if($status == 9)
			{				
				$this->cnt_html = "<font color=red>[".$this->videoName."]の変換処理に失敗しました。Youtubeの著作権が原因の可能性があります。</font>";
				$this->confirm_html = "";
			}
		}
	}
	
	function initForm()
	{

	}
	
	function getCntHtml()
	{
		// 初回
		if($this->ex_cnt == 0)
		{
			if($this->type == 1)
			{
				$this->cnt_html = "<font color=\"red\">変換を開始しました</font>初回<font color=\"red\">変換が処理中です．．．</font>";						
			}
			// サムネイル変換
			else if($this->type == 2)
			{
				$this->cnt_html = "<font color=\"red\">サムネ変換を開始しました</font>初回<font color=\"red\">変換が処理中です．．．</font>";
			}
			// 待ち受け画像
			else if($this->type == 4)
			{
				$this->cnt_html = "<font color=\"red\">待ち受け変換を開始しました</font>初回<font color=\"red\">変換が処理中です．．．</font>";
			}
			// ﾃﾞｺﾒ素材
			else if($this->type == 3)
			{
				$this->cnt_html = "<font color=\"red\">ﾃﾞｺﾒ素材変換を開始しました</font>初回<font color=\"red\">変換が処理中です．．．</font>";
			}			
		}
		else
		{
			$ex_cnt = $this->ex_cnt + 1;
			
			if($this->type == 1)
			{
				$this->cnt_html = "<font color=\"red\">変換を開始しました</font>".$ex_cnt."回目<font color=\"red\">変換が処理中です．．．</font>";						
			}
			// サムネイル変換
			else if($this->type == 2)
			{
				$this->cnt_html = "<font color=\"red\">サムネイル変換を開始しました</font>".$ex_cnt."回目<font color=\"red\">変換が処理中です．．．</font>";
			}
			// 待ち受け画像
			else if($this->type == 4)
			{
				$this->cnt_html = "<font color=\"red\">待ち受け変換を開始しました</font>".$ex_cnt."回目<font color=\"red\">変換が処理中です．．．</font>";
			}
			// ﾃﾞｺﾒ素材
			else if($this->type == 3)
			{
				$this->cnt_html = "<font color=\"red\">ﾃﾞｺﾒ素材変換を開始しました</font>".$ex_cnt."回目<font color=\"red\">変換が処理中です．．．</font>";
			}
		}
	}
	
	function getSelectSql()
	{
		$sql = "select `entrylist`.`title`,`videolist`.`cid`,`videolist`.`time` ";
		$sql = $sql."from `entrylist`,`videolist` ";
		$sql = $sql."where `videolist`.`video_id` =  ";
		$sql = $sql.$this->videoId." ";
		$sql = $sql."and `videolist`.`site_id` = 1 ";
		$sql = $sql."and `videolist`.`open_flag` = 1 ";
		$sql = $sql."and `entrylist`.`open_flag` = 1 ";
		$sql = $sql."and `videolist`.`cid` is not null ";
		$sql = $sql."and `entrylist`.`entry_id` = `videolist`.`entry_id` ";
		return $sql;
	}	
	
	function getVideoImage()
	{
		$sql = $this->getSelectSql();
		
		$result = mysql_query($sql);
		$rows = mysql_num_rows($result);

		
		if($rows > 0)
		{		
			$data = mysql_fetch_array($result);
			
			$this->videoName = $data["title"];
				
			$this->imgSrc = "<img src=http://i1.ytimg.com/vi/".$data["cid"]."/default.jpg align=left><br><br><br><br><br>";
		}
		// データがない場合
		else
		{
			
		}
	}
	
	function hasThisMember()
	{
		
		// ユーザー端末IDに対して、ユーザーIDを取得する
		$sql = "select `memberId`,`type` from memberMst where uim = '".$this->uId."'";

		$result = mysql_query($sql);
		$rows = mysql_num_rows($result);

		// データがある場合
		if($rows > 0)
		{
			$data = mysql_fetch_array($result);
			$this->memberId = $data["memberId"];
			$this->user_type = $data["type"];
			
			// 変換総回数を設定する
			// 無料ユーザーの場合
			if($this->user_type == 0)
			{
				$this->ex_total_cnt = 3;
			}
			else if($this->user_type == 1)
			{
				$this->ex_total_cnt = 10;
			}
			else if($this->user_type == 2)
			{
				$this->ex_total_cnt = 30;
			}
			else if($this->user_type == 3)
			{
				$this->ex_total_cnt = 50;
			}	
			
			return true;		
		}
		else
		{
			return false;
		}
		
	}
	
	function createNewMember()
	{
		$sql = "insert into memberMst (`carrierId`,`type`,`uim`,`lastlogin_date`) values (".$this->carrierId;
		$sql = $sql.",0,'".$this->uId."',now())";
		
		$result = mysql_query($sql);
		if ($result != "1")
		{
			$this->errorMessage = "システムエラーが発生しました。管理員に連絡してください。";
			return;
		}
		else
		{
			$this->hasThisMember();
		}
	}
	
	// 今日該当ユーザーの変換回数を取得する
	function getEx_cnt()
	{
		$sql = "select ex_cnt from view_history where memberId = ".$this->memberId." and date = '".$this->date."'";
		
		$result = mysql_query($sql);
		$rows = mysql_num_rows($result);
		
		if($rows > 0)
		{
			$data = mysql_fetch_array($result);
			$this->ex_cnt = $data["ex_cnt"];
		}
		else
		{
			$this->insertEx_cnt();
			$this->ex_cnt = 0;
		}
	}	
	
	function updateEx_cnt()
	{
		$sql = "update view_history set ex_cnt = ex_cnt + 1 where memberId = ".$this->memberId." and date = '".$this->date."'";
		$result = mysql_query($sql);
		
		if($result != "1")
		{
			$this->errorMessage = "システムエラーが発生しました。管理員に連絡してください。";
			return false;
		}
		else 
		{
			return true;
		}
	}
	
	
	function insertEx_cnt()
	{
		$sql = "insert into view_history (date,memberId,ex_cnt) values ('".$this->date."',".$this->memberId.",0)";
		$result = mysql_query($sql);		
		
		if($result != "1")
		{
			$this->errorMessage = "システムエラーが発生しました。管理員に連絡してください。";
			return false;
		}
		else
		{
			return true;
		}
	}
	
	function getConfirmHtml()
	{
		$this->confirm_html = "format_start.php?UID=NULLGWDOCOMO&type=".$_GET["type"]."&videoId=".$_GET["videoId"]."&confirm=1";
	}
		
	function updateViewCount()
	{
		$sql = "update videolist set view_cnt = view_cnt + 1 where video_id = ".$this->videoId;
		
		$result = mysql_query($sql);
	}
}
?>